package org.lora.biz.workflow.engines;

import java.util.List;

import org.lora.biz.workflow.engines.bean.PathDefinitionBean;
import org.lora.biz.workflow.engines.bean.TaskInstanceBean;
import org.lora.biz.workflow.engines.entity.ProcessInstance;
import org.lora.biz.workflow.engines.entity.ProcessTask;
import org.lora.exception.LoraCoreException;

/**
 * <p>
 * 类名:IProcessMoveService
 * </p>
 * 描述:流程运行服务接口<br>
 * 创建时间:2016年4月12日 下午2:24:32<br>
 * 
 * @author Bladnir@outlook.com<br>
 *         修改历史:<br>
 *         2016年4月12日 Bladnir 创建<br>
 */
public interface IProcessMoveService {

	public ProcessInstance getProcessInstanceById(String processInstanceId) throws LoraCoreException;

	public ProcessTask getProcessTaskById(String taskId) throws LoraCoreException;

	public ProcessInstance draft(String processDefinitionId, ExcuterBean excuterBean,String version) throws LoraCoreException;

	public TaskInstanceBean getTaskInstance(String processInstanceId, String taskId, boolean isFilterPath, boolean isAddExcute)
			throws LoraCoreException;

	public boolean submit(String processInstanceId, String taskId, List<PathDefinitionBean> nextPathList) throws LoraCoreException;

	public boolean submit(TaskInstanceBean taskInstanceBean) throws LoraCoreException;
}
